fix(spec): namespace tombstone stops citing ADR-0006 D4 — unblocks the merge queue's check-adr-anchors red - #12917
Merged
Conversation
…ion letter no version of that ADR declares check-adr-anchors' letter validation (landed via #12785) now reads ADR-0006's declared letters, and the 2026-08-28 v4 addendum (#12736, direct-merged) minted D1-D3 for the API-surface boundary record — making the ancient D4 citation in this tombstone (from #4522) mechanically unresolvable. Every merge-queue build since 07:49Z fails on it, so the whole queue is stalled. The retirement is real and stays enforced; the citation was always a phantom (no version of ADR-0006 ever declared a D4 or decided object naming). Per the gate's own remedy order this is case (c): a real but unwritten decision needs an ADR, not a citation — the false letter is dropped now, the message keeps the fix (name: "sys_user") and the #4001 history, and a follow-up card asks for the decision to be written so the citation can return. Verified: check-adr-anchors --self-test 106/106 EXIT=0 (was 1 failure on the pristine tree, reproduced first), live run EXIT=0, vitest object.test.ts 185/185 (the tombstone pin asserts substrings this change keeps). Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MnijPVVDakqK2J335JoJtq
Contributor
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 1 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 126 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
This was referenced Aug 28, 2026
os-zhuang
approved these changes
Aug 28, 2026
This was referenced Aug 28, 2026
This was referenced Aug 28, 2026
os-zhuang
pushed a commit
that referenced
this pull request
Aug 28, 2026
Freshness merge only — no content change of this branch's own. Picks up PR #12917, which stopped packages/spec's namespace tombstone citing the phantom ADR-0006 D4 and so clears the pre-existing check-adr-anchors red that this branch's older base still carried. A workflow rerun could not clear it: a rerun reuses the original merge snapshot, so a new commit on a fresher base is the only thing that moves it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Main is red and the whole merge queue is stalled on it — every
merge_groupbuild since ~07:49Z failsLint & Type Checkatcheck-adr-anchors:Observed dequeues: #12895 (CI_FAILURE, 08:29Z), plus failing queue builds for pr-12897 / pr-12901 / pr-12905 in the same window.
Root cause — two landings that never met in CI
live-decision-letters-are-green-today) landed incheck-adr-anchorsvia tooling(check-adr-anchors): verify a citedDknames a real decision of the cited ADR #12785.projectdeliberately #12736) minted### D1 / D2 / D3headings for the API-surface boundary record — the FIRST decision letters any version of ADR-0006 ever declared. It is a governeddocs/adr/**surface, so it was human-direct-merged (bypass) at 07:49Z — skipping merge-time re-validation, which is precisely the one gap the bypass path has.ADR-0006 D4citation in thenamespacetombstone (added by feat(spec)!: ObjectSchema 在 parse 路径上收紧,而不只是 create() —— #1535 的奠基例子一直是活的(#4001 批 3a) #4522) became mechanically unresolvable. No version of ADR-0006 ever declared a D4 or decided object naming — the citation was always a phantom; it just had nothing to contradict it until today.The fix — the gate's own remedy, case (c)
The retirement is real and stays enforced. This PR drops only the false letter citation from the tombstone string — the message keeps the actionable fix (
name: "sys_user") and the #4001 parse-path history. One string, plus a patch changeset for@objectstack/spec(the string is a shipped rejection message).Deliberately NOT in this diff (follow-up card filed): the sibling spelling in
translation.zod.ts:362and theobject.test.ts:1573test title (neither is in the gate's scanned population — the gate names exactly 1 file), CHANGELOG history (never edited), and writing the actual ADR decision so the citation can return.Verification
aef1b7e64(= current main):check-adr-anchors --self-test→ 1 failure of 106, EXIT=1, same rendering as the queue logs.✓ check-adr-anchors --self-test: 106 assertions …EXIT=0; live run EXIT=0.vitest run src/data/object.test.ts→ 185/185 pass — the tombstone pin asserts the`namespace`andname: "sys_user"substrings, both kept.Generated by Claude Code